1. Technical Field
The present invention is directed to communications networks. More specifically, the present invention is directed to a method and apparatus for improving network performance of a multiprocessor system using virtual interfaces.
2. Description of Related Art
Most servers are multiprocessor systems. As the name suggests, a multiprocessor system has multiple processors. The processors often process data in parallel and hence, enhance performance of the computer systems within which they are embedded. Furthermore, a multiprocessor system has increased reliability since the failure of one processor will not necessarily lead to a crash of the entire system.
The multiprocessor systems are often connected to a network or networks through a limited number (usually one) of physical interfaces. Consequently, before a processor in a multiprocessor system uses a physical interface to transmit network data, it has to first request permission to lock out all the other processors from using the interface. If more than one processor is requesting access to the interface, there may be some access contention or lock contention. To reduce the likelihood of lock contention, an algorithm is generally used to select which one of the requests to honor first. The algorithm may do so on a first-come, first serve or round robin or on a priority basis or using any other contention resolution scheme.
In any case, when an access request is honored, the requesting processor is allowed to lock out all other processors from using the interface until the data is transmitted. When the processor has finished transmitting the data, it releases the lock to allow another processor to gain access to the lock. Obviously, while the processor is transmitting data, other processors may issue requests to the lock. Hence, there may be instances when other processors have to wait before gaining access to the network interface in order to transmit data. In these instances, the physical interface may be viewed as a bottleneck as requests for the physical interface are accumulating at that point.
Thus, although the use of a multiprocessor in a system may greatly improve a computer system's performance, network communications performance may nonetheless not benefit from the use of the multiple processors due to this bottleneck.
Therefore, it would be desirable to have a method and apparatus that alleviates bottlenecks at the physical interface in the point of view of the processors.